Spread spectrum code tracking, for example wideband code division multiple access (WCDMA) tracking, is employed in many network communications systems. After a spread spectrum receiver has performed initial acquisition to a cellular base station, one of the many tasks of the receiver is to keep its local spreading code reference locked to the transmitted spreading code. These codes must be locked in time for the receiver to be able to generate meaningful correlations. Typically, a phase-locked loop (PLL) is used to control the code tracking operation. This operation must run continuously to track the code because of changes in the channel environment and clock drift. Typical loops have a need for intelligence and in setting loop filter coefficients.
Typical code tracking blocks use a technique known as the early-late gate algorithm. The basic idea of this algorithm is illustrated in FIG. 1. A receiver's correlator will generate three samples. A middle sample 12 is known as the on time sample and is generated by correlating a received signal against a receiver's estimate of a proper code timing reference. Two other samples 10 and 14 are known as early and late samples, and are generated by correlating the received signal against shifted versions of the receiver's code. Typically, the early sample is formed by shifting the receiver's code by a fraction of a chip earlier than it should be, and the late sample is formed by shifting the code later than it should be.
If the receiver's code reference is perfectly synchronized, the result will be samples that look like the “Perfectly Synchronized” left portion 16 of FIG. 1. The early and late samples will be at exactly the same height (due to the symmetrical shape of the pulse shaping filters in the system) and the on-time sample will be larger than both the early and late samples. However, in the presence of a timing offset, the result looks like the “out of synch” or right portion 18 of FIG. 1.
Of importance is the fact that the quantity: error=early−late is non-zero. The error for the loop is generated as a difference in the amplitude between the early and late samples. The magnitude and sign of this error can be used to drive a code-tracking loop. If the code is far off, for example, it may take a relatively long time to correct.
Therefore, a need exists for a method of intelligent adaptation of filter coefficients to correct code tracking. A further need exists for a method and system, which provides intelligence to the code-tracking algorithm to offer improved performance.